home *** CD-ROM | disk | FTP | other *** search
- #ifndef _H_LIST_IMPL
- #define _H_LIST_IMPL
-
- #ifndef lint
- static const char list_impl_sccsid[]= "%W% %G% %U%: Component-%Y% %Q%";
- #endif // lint
-
- #include "cpp_entry.h"
- #include "Listconsts.h"
-
- class ListImplAncestor ;
- class ListIterAncestor ;
-
- // the list meta-object - it essentially forms the base meta-object for this
- // component.
- class ListMeta : public BaseMeta
- {
- public :
- ListMeta() { } ;
- ~ListMeta() { } ;
- virtual CLASS *instantiate(ImplSpec *) ;
- RTTI_SCAFFOLDING_DECL(ListMeta)
- } ; // declaration of the meta-class
-
- // the iterator meta-object - it essentially forms the base meta-object for
- // the iterator sub-component
- class IterMeta : public BaseMeta
- {
- public :
- IterMeta() { } ;
- ~IterMeta() { } ;
- virtual ListIterAncestor *instantiate(ImplSpec *,ListImplAncestor *);
- virtual ListIterAncestor *instantiate(ImplSpec *,ListImplAncestor &);
- RTTI_SCAFFOLDING_DECL(IterMeta)
-
- } ; // declaration of the meta-class
-
-
- // Base object type for the entire hierarchy - contains the interface of
- // that all the implementations support - also provides a vehicle for
- // implementing the base meta-object for the inked list component.
- class ListImplAncestor : public virtual CLASS
- {
- public :
- ListImplAncestor() { } ;
- virtual ~ListImplAncestor() { }
- virtual void *remove_specific_elem(void *) { return NULL; } ;
- virtual ListImplAncestor *merge_lists(ListImplAncestor *,
- ListElemPriority ) { return NULL ; };
- virtual void queue ( void *, ListElemPriority ) { } ;
- virtual void *dequeue( void ) { return NULL ; } ;
- ListMeta *operator->() { return meta ; }
- RTTI_SCAFFOLDING_DECL(ListImplAncestor)
-
- static ListMeta *meta ;
- } ; // an abstract parent class that provides the common virtual functions
-
- class ListIterAncestor : public virtual CLASS
- {
- public :
- ListIterAncestor() { } ;
- ListIterAncestor(ListImplAncestor *) { } ;
- ListIterAncestor(ListImplAncestor &) { } ;
- virtual ~ListIterAncestor() { } ;
- virtual void reset(void ) { } ;
- IterMeta *operator->() { return meta ; }
- virtual void *operator() () { return NULL ; } ;
- RTTI_SCAFFOLDING_DECL(ListIterAncestor)
-
- static IterMeta *meta ;
- } ; // an abstract (kinda) parent class for the set of list iterators
-
- #endif // _H_LIST_IMPL
-